home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / UTILITY / MTC_V205.ARJ / MTCDOCEN.DOC < prev    next >
Text File  |  1991-07-21  |  47KB  |  1,005 lines

  1. ╔══════════════════════════════            ┌─────────────────┐
  2. ║ MTC       Make Them Check                │    D.I.S.P.     │────┐
  3. ║                                          │                 │░░░░│
  4. ╟──────────────────────────────            │                 │░░░░│
  5. ║ (c) 1991  Robert W.van Hoeven            │ Dutch           │░░░░│
  6. ╟──────────────────────────────            │   Independent   │░░░░│
  7. ║ Release : 2.05                           │     ShareWare   │░░░░│
  8. ║ Rel.Date: 21th July 1991                 │       Programmer│░░░░│
  9. ╠══════════════════════════════            └─────────────────┘░░░░│
  10. ║                                          |    │░░░░░░░░░░░░░░░░░│
  11. ║ │ MTC.EXE                                |    └─────────────────┘
  12. ║ │                                        |       ┌─────┐        |
  13. ║ │                                        |       │░░░░░│        |
  14. ║ │                                        |       └──┬──┘        |
  15. ║ │ Lines marked with '│' are              |     ┌────┴────┐      |
  16. ║ │ changes from version 2.01.             ------││││││ ═══│-------
  17. ║                                                └─────────┘
  18. ╠═══════════════════════════════
  19. ║ Address: Robert W. van Hoeven
  20. ║          PO. Box 131
  21. ║          1170 AC  Badhoevedorp
  22. ║          Nederland / Holland
  23. ╚═══════════════════════════════
  24.  
  25.  ┌───────┬─────────────────────────────────────────────────────────────┐
  26.  │   0   │ Table of contents                                           │
  27.  └───────┴─────────────────────────────────────────────────────────────┘
  28.  
  29.  1 ----    General information
  30.   1.1      Copyrights and License Agreement
  31.   1.2      Newer versions and contacting the author
  32.  
  33.  2 ----    Package description and requirements
  34.   2.1      Introduction
  35. │ 2.2      Installation
  36.   2.3      Instructions on usage
  37.   2.4      Runtime options
  38.   2.5      Switches
  39.   2.6      Options that do something with the date
  40.     2.6.1  Normal dates
  41.     2.6.2  Relative dates
  42.     2.6.3  Absolute dates
  43.   2.7      Options that do something with the RS232
  44.   2.8      Options that do something with DesqView
  45.   2.9      Options that do something with files
  46.   2.10     Options that do something with (space on) disks
  47.   2.11     Options that do something with the PC environment
  48.  
  49.  3 ----    Package description and requirements
  50.   3.1      A simple example for backup
  51.   3.2      An example of tossing messages when received
  52.   3.3      An example of a cold/warm start of a terminal program
  53.   3.4      An example of a full optimize of a 120Mb HDU
  54.  
  55.  4 ----    Version information and credits
  56.   4.1      The BETA-team
  57.   4.2      Credits
  58.   4.3      Version history
  59.   4.4      Copyright, Trademarks
  60.  
  61.  ┌───────┬─────────────────────────────────────────────────────────────┐
  62.  │   1   │ General information                                         │
  63.  └───────┴─────────────────────────────────────────────────────────────┘
  64.  
  65.  1.1 Copyrights and License Agreement
  66.  ────────────────────────────────────
  67.  
  68.  - Users of the MTC-package must accept this disclaimer of warranty:
  69.  
  70.  - The MTC-package is supplied as is.  The author disclaims all
  71.    warranties, expressed or implied, including, without limitation,
  72.    the warranties of merchantability and of fitness for any purpose.
  73.    The author assumes no liability for damages, direct or consequential,
  74.    which may result from the use of the MTC-package;
  75.  
  76.  - The MTC-package is a "shareware program" and is provided at no charge
  77.    to the user for evaluation.  Feel free to share it with your friends,
  78.    but please do not give it away altered or as part of another system.
  79.    The essence of "user-supported" software is to provide personal
  80.    computer users with quality software without high prices, and yet to
  81.    provide incentive for programmers to continue to develop new products.
  82.  
  83.  - If you find this program useful and find that you are using and
  84.    continue the use of the MTC-package after a 30 days trial period,
  85.    you must register the MTC-package as described in the supplied file
  86.    REGISTER.MTC;
  87.  
  88.  - The registration of the MTC-package will license ONE copy for use on
  89.    any computer at any one time, as long as the usage confirms to the
  90.    type of registration you have done (so NON-commercial usage when you
  91.    have a non-commercial license);
  92.  
  93.  - Anyone distributing the MTC-package for any kind of remuneration must
  94.    first contact the Author at the address above for authorization.
  95.  
  96.  - You are encouraged to pass a copy of the MTC-package along to your
  97.    friends for evaluation.  Please encourage them to register their
  98.    copy if they find that they can use it;
  99.  
  100.  - Support on MTC, when used in a non-commercial environment, is
  101.    available by means of written letters or by entering the inter-
  102.    national echomail area DISP;
  103.  
  104.  - Problems and suggestions can be entered in the FidoNet <tm> Echomail
  105.    conference <tm> called DISP (international). Entering this echo does
  106.    not exclude you of the duty to register the MTC-package, though users
  107.    who evaluate the product can enter the echo for questions;
  108.  
  109.  - The MTC-package, all programs, the documentation and support-files is
  110.    copyrighted 1991 by Robert W. van Hoeven, PO. Box 131, Badhoevedorp
  111.    1170AC, Holland. All rights are reserved. You may copy this package
  112.    for backup purposes. Also you may copy and share unmodified copies of
  113.    the whole package, providing that the copyright notice is reproduced
  114.    and included on all copies.
  115.    Excluded from this statement are the support-files written by other
  116.    authors. Please refer to the documentation of these programs for
  117.    copyrights and license agreements;
  118.  
  119.  - It is forbidden to modify, adapt, translate, reverse engineer, de-
  120.    compile and/or disassemble the software in the MTC-package. Patching
  121.    the medium at places that carry the software is seen as a program
  122.    change and is also forbidden;
  123.  
  124.  - Performing any of the illegal actions as stated in the previous
  125.    lines, is a theft and no fair play to the author and, more important,
  126.    to the registered users;
  127.  
  128.  - Bulletin Board Systems that distribute the MTC package can convert
  129.    the WHOLE package to any archive-system they like but all original
  130.    files must be included in the new archive. The MTC-package on the
  131.    Bulletin Board can contain at the most 2 extra files. These files
  132.    can only be a commercial for that Bulletin Board and/or validation
  133.    data that is presented as a service to all users and shall have no
  134.    other functions;
  135.  
  136.  - After the normal trial period of 30 days, you must register the soft-
  137.    ware or you must remove it from your PC;
  138.  
  139.  - Comments, suggestions and bug reports are welcome and will be answered
  140.    as soon I have the time to do so. You can send me a letter of leave a
  141.    NetMail <tm> message named to Rob Van.hoeven (mind the point) on node
  142.    2:512/100 (RA Support, Monster, Holland, SysOp is Reinier de Groot).
  143.    When you want to send me normal mail, address it to:
  144.    Robert W. van Hoeven, PO. Box 131, 1171 AC Badhoevedorp, Holland;
  145.    Also you can enter messages in the FidoNet <tm> DISP Echomail <tm>
  146.    area;
  147.  
  148.  
  149.  1.2 Newer versions and contacting the author
  150.  ────────────────────────────────────────────────────────────────────────
  151.  The newest version of MTC is always available at the DISP-HQ on node
  152.  2:512/100. MTC is also distributed thru a number of DISP support nodes.
  153.  You can obtain MTC in four different ways:
  154.  
  155.  - Logging on at DISP-HQ or a support node
  156.  
  157.  All zones :  2:512/100  (Multiline Paradise NL #1)       DISP-HQ
  158.                          (Sysop: Reinier de Groot )
  159.               2:512/129  (MultiLine Paradise NL #2)       DISP-HQ
  160.                          (Sysop: Reinier de Groot )
  161.  
  162.  For zone 1:  1:203/988  (Amber Shadow       USA  )       Support & beta
  163.                          (Sysop: Dave Overton     )
  164.               1:154/40   (The Anonymous BBS  USA  )       Support & beta
  165.                          (Sysop: Bob R.           )
  166.  
  167.  For zone 2:  2:280/216  (Sirex              NL   )       Support & beta
  168.                          (Sysop: Gerry Ulrich     )
  169.               2:242/4    (GOLEM    Meerbusch FRG  )       Support & beta
  170.                          (Sysop: Hanstheo Wolf    )
  171.               2:241/5603 (FunBoard Felbert   FRG  )       Support & beta
  172.                          (Sysop: Dirk Astrath     )
  173.               2:244/8500 (Nilpferd BBS       FRG  )       Support & beta
  174.                          (Sysop: Joerg Dassler    )
  175.               2:403/139  (The Black Universe ISR  )       Support & beta
  176.                          (Sysop: Saar Blitz &     )
  177.                          (       Addy Santos      )
  178.               2:405/166  (Hith Hiker BBS     ISR  )       Support & beta
  179.                          (Sysop: Alon Gingold     )
  180.               2:200/407  (Secret Blue Valley SWE  )       Support & beta
  181.                          (Sysop: Andreas Birgerson)
  182.               2:257/168  (Barnabas the Caring UK  )       Support & beta
  183.                          (Sysop: John Barton      )
  184.               2:440/63   (The Frontier BBS        )       Support & beta
  185.                          (Sysop: Dave Parker      )
  186.               2:335/5    (DBridge/Raccess support )       Support & beta
  187.                          (SysOp: Stephano Pasquini)
  188.  
  189.  
  190.  For zone 3:  Pending
  191.  
  192.  For zone 5:  Pending
  193.  
  194.  For zone 4 and 6        (vacant, it can be you ! )
  195.  
  196.  
  197.    The BBS's above will always have the most current version of MTC
  198.    available. Also, in some cases, it is possible to request the
  199.    newest MTC with a standard file-request (ask the SysOp in question).
  200.    On 2:512/100 you can use MTCNEW as magical name to Freq. the newest
  201.    version.
  202.    The actual DISP-HQ is point 2:512/100.5, but this is a closed system
  203.    and can not be accessed from the 'outside'). You CAN address netmail
  204.    to this point though !
  205.  
  206.  - Logging on to your own BBS;
  207.    Chances are, that you will find an older version (international
  208.    users) because it will take some time for the new version to
  209.    'bleed' thru the net;
  210.  
  211.  - Update service;
  212.    You can enter a special update service (read REGISTER.MTC).
  213.  
  214.  
  215.  If you think you have found problems in MTC, or in any other case,
  216.  you wish to contact the author, you can send me:
  217.  
  218.  - A letter to the address you can find in the header of this file;
  219.  - A NetMail <tm> message to Rob Van.hoeven (please mind the point
  220.    between Van and Hoeven) at 2:512/100 or (better) 2:512/100.5;
  221.  - A Message in the FidoNet <tm> DISP echomail <tm> area;
  222.  
  223.  ┌───────┬─────────────────────────────────────────────────────────────┐
  224.  │   2   │ Package description                                         │
  225.  └───────┴─────────────────────────────────────────────────────────────┘
  226.  
  227.  2.1 Introduction
  228.  ────────────────────────────────────────────────────────────────────────
  229.  After CDT V 1.01 I got very angry. After calculating all the programs
  230.  I used for several checks in batch-files, I decided to write one big
  231.  program that can do it all. The version you currently have is the new
  232.  2.01 or one of the follow-up releases and contains a wide variety of
  233.  of tests you can submit in batch-files. I renamed the program from
  234.  CDT to MTC, because Make Them Check cover the functions of the program
  235.  somewhat better than Check Daily Task.
  236.  
  237.  If a special batch-language (both resident or compiler) is not your
  238.  taste, MTC is something for you !!
  239.  
  240.  When you use resident batch-compilers to do some or all of the tasks
  241.  that are present in MTC, you are consuming lots of memory as long as
  242.  the computer is on, for a, relative, short execution-time. The last
  243.  few months we can see many batch-file compilers with added features
  244.  in both the Shareware and commercial circuit. I own one of them
  245.  (The Builder, licensed), but for these simple tasks, I don't use them.
  246.  Either the batches change to many times or the tests are done in the
  247.  AUTOEXEC.BAT file. The last one is one of these batch files that can
  248.  not be compiled (I know, you can build a AUTOEXEC.BAT file with just
  249.  one call to a compiled batch, but that is not what I want).
  250.  
  251.  MTC is a little program that can be included in your batch-file(s) like
  252.  AUTOEXEC.BAT and will check if a certain task is already done or is
  253.  (still) pending (today or from an earlier date). MTC can be used on
  254.  255 different tasks and will only consume 1 directory entry (no real
  255.  disk-clusters) for every task you would like to check unless you use
  256.  the @C option. In that case, MTC will create a 8-byte file (that WILL
  257.  consume at least one cluster on your disk).
  258.  
  259.  One of the problems of most of these type of programs is, that they
  260.  can do only one type of test. They either patch themselves to 'reduce'
  261.  the amount of disk space needed or they can only handle one semaphore-
  262.  file (a file that is used by such a program to compare the current
  263.  and the previous status). The second type is already much in advan-
  264.  tage. I dislike self-patching programs. Most of the time you can not
  265.  compress them and sometimes they set the 'archive' bit after every
  266.  test, causing them to be included in any (consolidated) backup. MTC
  267.  also uses semaphore files (up to 255, depending on the number of
  268.  different tests (I call them 'tasks')). Except one type, the all use
  269.  nope/null/nill/no bytes of disk-space except the directory entry in
  270.  the directory that will contain the file.
  271.  
  272.  The tests you can do are not only date-tests but also communications,
  273.  disk-space and file tests are included. The list of test will enhance
  274.  with newer versions (or already available in this version), like tests
  275.  on the CPU-type, tests if disks are present, tests on video cards and
  276.  so on....
  277.  
  278.  One of the big advantages of MTC is, that you as the user, can store
  279.  requests of new tests that are to be included in a newer version. Use
  280.  your netmail/echomail possibilities to send them to me.
  281.  
  282.  
  283. │2.2 Installation
  284. │────────────────────────────────────────────────────────────────────────
  285. │Copy MTC.EXE and MTCCFG.EXE to some directory in the DOS-path and start
  286. │MTCCFG.EXE. Be sure to use the same versions of MTCCFG.EXE and MTC.EXE
  287. │otherwise you get errors !!!!
  288. │You can now install the defaults you like to use for the user-input and
  289. │the sound. These options can still be overruled with some switches but
  290. │in general, you can use MTC with the smallest number of parameters when
  291. │you set the correct defaults you like.
  292. │AFTER you have used MTCCFG.EXE, you can use programs like PKLITE, LZEXE
  293. │and other compressors on your patched copy of MTC.EXE. If you want to
  294. │change the defaults again (with MTCCFG.EXE) you must uncompress the
  295. │program OR use a fresh copy of MTC.EXE again !
  296.  
  297.  2.3 Instructions on usage
  298.  ────────────────────────────────────────────────────────────────────────
  299.  MTC has the following syntax :
  300.  
  301.  MTC [TASK:t] {DESC:dddd_dddd} [option] {switch} .. {switch}
  302.  
  303.  Each of these parameters will be described below and also an example
  304.  of a batch-file is given.
  305.  
  306.  The most important thing to know is how MTC does its work. I will
  307.  describe them in a few simple steps:
  308.  
  309.  - When MTC comes active, it will test for the task-number. With help
  310.    of this task-number, you can do up to 255 independent tests in your
  311.    machine with only one copy of MTC. One independent test is called
  312.    a task;
  313.  
  314.  - If the task-number is found, MTC will check what type of test is
  315.    needed. If this is established, MTC continues;
  316.  
  317.  - MTC will try to find a task-file (semaphore file) with the name
  318.    MTC.nnn (where nnn is the task-number between 000 and 255) in the
  319.    DOS-path, the directory where MTC.EXE is stored or the current
  320.    directory;
  321.  
  322.  - If not found, MTC will do the test (optionally ask the user if
  323.    the test is allowed) and create a new MTC.nnn file in the directory
  324.    where MTC.EXE is found (if this is not what you want, you must move
  325.    the MTC.nnn file afterwards to the place you like). If the test is
  326.    triggered (OK), MTC will return with an errorlevel (dependent on
  327.    the type of test);
  328.  
  329.  - If found, MTC will compare the semaphore file to see if the test is
  330.    already done. If this is the case, MTC will return with errorlevel 0.
  331.    Otherwise, MTC will do the test (optionally ask the user if the test
  332.    is allowed) and update MTC.nnn to the new situation;
  333.  
  334.  With the error-level that is returned by MTC, you can control the flow
  335.  of your batch-file. Remember that errorlevel 0 means that the test is
  336.  not triggered and 255 means that an error in the MTC call is found.
  337.  
  338.  
  339.  2.4 Runtime options
  340.  ────────────────────────────────────────────────────────────────────────
  341.  There are two options that control MTC itself. These are the TASK: and
  342.  DESC: options. TASK: must be present and must be followed by the task-
  343.  number. Remember that every separate test must have a separate task-
  344.  number otherwise MTC will mix the tests. TASK:1 means that task 1 is
  345.  active (and semaphore-file MTC.001 is used). You can supply task-num-
  346.  bers between 1 and 255.
  347.  
  348.  DESC: is optional and can contain the text you want to assign to the
  349.  task you supplied. If the text must contain spaces, you must replace
  350.  them with an underscore. DESC:Backup_the_C:_drive will display the
  351.  following text 'Backup the C: drive'. If DESC: is left out, MTC will
  352.  report 'Default task'.
  353.  
  354.  
  355.  2.5 Switches
  356.  ────────────────────────────────────────────────────────────────────────
  357.  Switches also control the behavior of MTC. There are a number of them
  358.  and they are ALL optional. Also look into chapter xx.xx to read the
  359.  info about MTCCFG.EXE;
  360.  
  361. │/Q          : When a test is triggered, MTC will give the errorlevel
  362. │              that belongs to that trigger. In some cases (attended
  363. │              machines), you would like to have the option to decide
  364. │              yourself if the errorlevel should be returned or not.
  365. │              In this case you can let MTC ask for the action to per-
  366. │              form. If this option is active, the following will hap-
  367. │              pen:
  368. │              - MTC starts and tests if the decided test is triggered
  369. │                or not;
  370. │              - If not, errorlevel 0 is returned and you will see
  371. │                nothing (e.g. the trigger is not set or the task
  372. │                was already performed in this period);
  373. │              - If the test is triggered, MTC will ask the user if
  374. │                the trigger should be performed or not. The user
  375. │                can do the following:
  376. │                - Answer 'Y'
  377. │                  In this case MTC will return the errorlevel that
  378. │                  belongs to this trigger;
  379. │                - Answer 'N'
  380. │                  In this case MTC will return errorlevel 0 (as if
  381. │                  there was no trigger). Depending on the test, MTC
  382. │                  will ask the same question next time until 'Y' or
  383. │                  'Q' is supplied;
  384. │                - Answer 'Q'
  385. │                  Only with triggers that use a semaphore (so trig-
  386. │                  gers on dates and changed files), you can instruct
  387. │                  MTC to return errorlevel 0 (as if there was no
  388. │                  trigger and the same as replying 'N') AND to update
  389. │                  the semaphore, so within this period the test will
  390. │                  not be performed anymore. F.i. you have a daily
  391. │                  test to perform an incremental backup. Now if you
  392. │                  reply 'Y', MTC will start that process and will
  393. │                  only trigger again when the next day arrives. If
  394. │                  you reply 'N', the task is not performed but if you
  395. │                  reboot your machine (the same day, with MTC in the
  396. │                  autoexec.bat file), MTC will start asking again.
  397. │                  If you reply 'Q', MTC will not start the task and
  398. │                  the semaphore is updates so you will not be bothered
  399. │                  with the question anymore this day.
  400. │              /Q is a toggle. If you installed MTC (with MTCCFG) with
  401. │              the default to ask questions, /Q will overrule that and
  402. │              no questions are asked. If you did NOT install MTC with
  403. │              a default to ask questions, /Q will overrule that and
  404. │              will start asking questions;
  405. │/B          : /B is a toggle like /Q. If MTC is not to beep by default,
  406. │              /B will start MTC to use the beep and reversed;
  407.  
  408.  /Dmmddyy    : When you supply this parameter, you overrule the time and
  409.                date in the PC itself. This comes in handy when you want
  410.                to execute a test for a specific date without resetting
  411.                the date/time of your PC. Normally MTC will use the cur-
  412.                rent system's date and time;
  413.  
  414.  /R          : /R must be supplied without one of the options that are
  415.                described in the next chapters. /R will delete the sema-
  416.                phore file of the supplied task, thus resetting the task
  417.                to scratch. You can also delete the MTC.nnn file with a
  418.                normal DOS DEL(ETE) command to gain the same results;
  419.  
  420.  
  421.  2.6 Options that do something with the date
  422.  ────────────────────────────────────────────────────────────────────────
  423.  There are a lot of different options available that do something with
  424.  the date.
  425.  
  426.  There are 3 groups. The 'normal' tests, the 'relative' tests and the
  427.  'absolute' tests. Some of them are superfluous (you can use another
  428.  construction to gain the same result) but they are setup in a way
  429.  that they are consistent.
  430.  
  431.  
  432.  2.6.1 Normal dates
  433.  ────────────────────────────────────────────────────────────────────────
  434.  D/DN :  The test is triggered each day (at 00:00:00 or the first moment
  435.          after this time that the test is done). If the test is valid
  436.          (e.g. triggered), MTC will return with an errorlevel equal to
  437.          the day-number (1=Sunday, 2=Monday .... 7=Saturday) and can be
  438.          used to do different things on different days.
  439.          When the DN option is used, MTC will return a fixed errorlevel
  440.          of 250 and not the day-number;
  441.  
  442.  H/HN :  The test is triggered each week (on monday 00:00:00 or the
  443.          first moment after this time the test is done. If the test is
  444.          valid (e.g. triggered), MTC will with an errorlevel equal to
  445.          the week-number. Notice that some people call the week with
  446.          the 1th of january week 1 (even if Jan. 1th is not a monday)
  447.          and some people call it week 53. MTC uses the latter.
  448.          When the HN option is used, MTC will return a fixed errorlevel
  449.          of 250 and not the week-number;
  450.  
  451.  MN   :  The test is triggered each month (on 1th at 00:00:00 or the
  452.          first moment after this time the test is done). If the test is
  453.          valid (e.g. triggered), MTC will with an errorlevel equal to
  454.          the month-number (1 to 12).
  455.          When the MN option is used, MTC will return a fixed errorlevel
  456.          of 250 and not the month-number;
  457.  
  458.  QN   :  The test is triggered each quarter (on 1th at 00:00:00 or the
  459.          first moment after this time the test is done). If the test is
  460.          valid (e.g. triggered), MTC will with an errorlevel equal to
  461.          the quarter-number (1,2,3 or 4);
  462.          When the QN option is used, MTC will return a fixed errorlevel
  463.          of 250 and not the quarter-number;
  464.  
  465.  YN   :  The test is triggered each year (on 1/1 at 00:00:00 or the
  466.          first moment after this time the test is done). If the test is
  467.          valid (e.g. triggered), MTC will with an errorlevel equal to
  468.          the year-number minus 1900 (80 to 99);
  469.          When the YN option is used, MTC will return a fixed errorlevel
  470.          of 250 and not the year-number minus 1900;
  471.  
  472.  
  473.  2.6.2 Relative dates
  474.  ────────────────────────────────────────────────────────────────────────
  475.  DRx  :  The test is triggered on every day with day-number 'x', where
  476.          'x' is 1 (sunday) to 7 (saturday). The test is valid for a
  477.          trigger at 00:00:00 on that day. When triggered, errorlevel
  478.          250 is returned;
  479.  
  480.  HRx  :  The test is triggered on every week with day-number 'x', where
  481.          'x' is 1 to 53. The test is valid for a trigger on monday at
  482.          00:00:00 in that week (or later). When triggered, errorlevel
  483.          250 is returned;
  484.  
  485.  MRx  :  The test is triggered on every month with month-number 'x',
  486.          where 'x' is 1 to 12. The test is valid for a trigger on 1th at
  487.          00:00:00 in that month (or later). When triggered, errorlevel
  488.          250 is returned;
  489.  
  490.  QRx  :  The test is triggered on every quarter with number 'x', where
  491.          'x' is 1 to 4. The test is valid for a trigger on 1th of that
  492.          quarter at 00:00:00 (or later). When triggered, errorlevel 250
  493.          is returned;
  494.  
  495.  YRx  :  The test is triggered on year with number 'x', where 'x' is
  496.          80 to 99. The test is valid for a trigger on 1/1 of that year
  497.          at 00:00:00 (or later). When triggered, errorlevel 250 is
  498.          returned;
  499.  
  500.  
  501.  2.6.3 Absolute dates
  502.  ────────────────────────────────────────────────────────────────────────
  503.  HSmmddyy :  The test is triggered every week where mmddyy is the base
  504.              for the test. For example, HS071391 will trigger on
  505.              20th of July, the 27th of July and so on. There must be
  506.              always a multiple of 7 days counted from mmddyy to trig-
  507.              ger the test. When triggered, errorlevel 250 is returned;
  508.  
  509.  MSmmddyy :  The test is triggered every month where mmddyy is the base
  510.              for the test. For example, MS071391 will trigger on
  511.              13th of Aug., the 13th of Sep. and so on.
  512.              When triggered, errorlevel 250 is returned;
  513.  
  514.  QSmmddyy :  The test is triggered every quarter where mmddyy is the
  515.              base for the test. For example, MS071391 will trigger on
  516.              13th of Oct., the 13th of Jan. and so on.
  517.              When triggered, errorlevel 250 is returned;
  518.  
  519.  YSmmddyy :  The test is triggered every year where mmddyy is the
  520.              base for the test. For example, MS071391 will trigger on
  521.              13th July 1992, the 13th July 1993 and so on.
  522.              When triggered, errorlevel 250 is returned;
  523.  
  524.  OSmmddyy :  The test is triggered only once on mmddyy.
  525.              When triggered, errorlevel 250 is returned;
  526.  
  527.  
  528.  2.7 Options that do something with the RS232
  529.  ────────────────────────────────────────────────────────────────────────
  530.  CLx      :  The test is ALWAYS (not only once a day) triggered when
  531.              the carrier signal on COMx is LOW. There will be no
  532.              MTC.nnn file created ! When the carrier is low, MTC will
  533.              return errorlevel 250;
  534.  
  535.  CHx      :  The test is ALWAYS (not only once a day) triggered when
  536.              the carrier signal on COMx is HIGH. There will be no
  537.              MTC.nnn file created ! When the carrier is high, MTC will
  538.              return errorlevel 250;
  539.  
  540.  
  541.  2.8 Options that do something with DesqView
  542.  ────────────────────────────────────────────────────────────────────────
  543.  DVL      :  The test is ALWAYS (not only once a day) triggered when
  544.              DesqView is NOT present (active). When DesqView is not
  545.              active, MTC will return errorlevel 250;
  546.  
  547.  DVH      :  The test is ALWAYS (not only once a day) triggered when
  548.              DesqView IS present (active). When DesqView IS active,
  549.              MTC will return errorlevel 250;
  550.  
  551.  
  552.  2.9 Options that do something with files
  553.  ────────────────────────────────────────────────────────────────────────
  554.  @Effffff :  The test is ALWAYS (not only once a day) triggered when
  555.              the file ffffff is present. You can use wildcards but re-
  556.              member that only the first found hit is tested.
  557.              If you want to test if DIR.EXE is in F:\TRAP, you CAN
  558.              supply F:\TRAP\*.EXE, but if DIR.EXE is not present but
  559.              COPY.EXE is, MTC will trigger. F:\TRAP\*.* can be used
  560.              to see if any file is present in F:\TRAP because MTC will
  561.              ignore directory and volumeID entries. Included are the
  562.              files with read-only, hidden and system attributes.
  563.              You can/must supply drives and directories. An example,
  564.              @EF:\TRASH\*.MSG will trigger when a *.MSG file is present
  565.              in F:\TRASH. When triggered, MTC will return with error-
  566.              level 250;
  567.  
  568.  @Cffffff :  The test is ALWAYS (not only once a day) triggered when
  569.              the file ffffff is CHANGED. You can use wildcards but re-
  570.              member that only the first found hit is tested.
  571.              If you want to test if DIR.EXE in F:\TRAP is changed, you
  572.              CAN supply F:\TRAP\*.EXE, but if COPY.EXE in the directory
  573.              comes before DIR.EXE, MTC will look if COPY.EXE is changed.
  574.              IF the previous time DIR.EXE WAS tested, you are bound to
  575.              get a trigger because COPY.EXE and DIR.EXE will not be the
  576.              same I presume. MTC will ignore directory and volumeID
  577.              entries in the directory but will include files with the
  578.              system, read-only and/or hidden attributes.
  579.              A change is detected when either the filesize and/or the
  580.              file-date of the file is/are changed. In this special case,
  581.              MTC will not create a zero-length MTC.nnn file but a file
  582.              of 8 bytes long.
  583.              When triggered, MTC will return with errorlevel 250. The
  584.              first time MTC tests the file, it is marked as not changed
  585.              so at the earliest, MTC will trigger with the second exe-
  586.              cute;
  587.  
  588.  @Affffff :  The test is ALWAYS (not only once a day) triggered when
  589.              the file ffffff is an archive. You can use wildcards but
  590.              remember that only the first found hit is tested.
  591.              If you want to test if DIR.ARC is an archive you CAN
  592.              supply *.ARC, but if DIR.ARC is not present but COPY.ARC
  593.              is, MTC will trigger. MTC will only test files with nor-
  594.              mal attributes.
  595.              Any file can be supplied. MTC uses the OPCFI routine that
  596.              is also used in programs like MTA, MTS, MTT, MTV, QFV and
  597.              so on. The OPCFI will return correct values, even when
  598.              the file has an non-archive extension (like COPY.SDN) or
  599.              when the file is a SFX-archive (PKZ110.EXE).
  600.              When triggered (e.g. the file is an archive), MTC will
  601.              return with a non-zero errorlevel. The following error-
  602.              levels can be expected:
  603.              1 : File is ARC/PAK/PKA compatible
  604.              2 : File is ZIP         compatible
  605.              3 : File is ZOO         compatible
  606.              4 : File is LZH/LZS     compatible
  607.              5 : File is DWC         compatible
  608.              6 : File is MD/MDCD     compatible
  609.              7 : File is LBR/LU      compatible
  610.              8 : File is ARJ         compatible
  611.              9 : File is HYP         compatible
  612.  
  613.  
  614.  2.10 Options that do something with (space on) disks
  615.  ────────────────────────────────────────────────────────────────────────
  616.  SLdsssss :  The test is ALWAYS (so not only once in a period) triggered
  617.              when the free-space on drive 'd' is below the value 'ssss'
  618.              (in bytes).
  619.              If /Q is present, you will also see a bar-chart of the used
  620.              space on the drive. When the bar is green, the free-space
  621.              is 50% or more of the total space on the drive. When the
  622.              bar-chart is yellow, between 50% and 25% of the drive is
  623.              free and when the bar-chart is red, between 25% and 0% of
  624.              the drive is free (colors only with the correct graphics
  625.              adapter and a color-monitor I'm afraid).
  626.              When triggered, MTC will return with errorlevel 250;
  627.  
  628.  SEdsssss :  The test is ALWAYS (so not only once in a period) triggered
  629.              when the free-space on drive 'd' is equal to 'ssss' (in
  630.              bytes).
  631.              If /Q is present, you will also see a bar-chart of the used
  632.              space on the drive.
  633.              When triggered, MTC will return with errorlevel 250;
  634.  
  635.  SGdsssss :  The test is ALWAYS (so not only once in a period) triggered
  636.              when the free-space on drive 'd' is greater than the value
  637.              'ssss' (in bytes).
  638.              If /Q is present, you will also see a bar-chart of the used
  639.              space on the drive.
  640.              When triggered, MTC will return with errorlevel 250;
  641.  
  642.  DPd      :  The test is ALWAYS (so not only once in a period) triggered
  643.              when drive d is present AND contains a disk(ette). In that
  644.              case errorlevel 250 is returned, otherwise errorlevel 0.
  645.              MTC will trap all errors, so the common message from DOS
  646.              (Abort, Retry, Ignore) will never be given;
  647.  
  648.  
  649.  2.11 Options that do something with the PC environment
  650.  ────────────────────────────────────────────────────────────────────────
  651.  MLbbbbb  :  The test is ALWAYS (so not only once in a period) triggered
  652.              when the free conventional memory is LESS than the value
  653.              'bbbbb' (in bytes). The space that MTC occupies itself is
  654.              NOT counted, so the value is tested against the memory
  655.              without MTC in memory.
  656.              When triggered, MTC will return with errorlevel 250;
  657.  
  658.  MEbbbbb  :  The test is ALWAYS (so not only once in a period) triggered
  659.              when the free conventional memory is EQUAL than the value
  660.              'bbbbb' (in bytes). The space that MTC occupies itself is
  661.              NOT counted, so the value is tested against the memory
  662.              without MTC in memory.
  663.              When triggered, MTC will return with errorlevel 250;
  664.  
  665.  MGbbbbb  :  The test is ALWAYS (so not only once in a period) triggered
  666.              when the free conventional memory is GREATER than the value
  667.              'bbbbb' (in bytes). The space that MTC occupies itself is
  668.              NOT counted, so the value is tested against the memory
  669.              without MTC in memory.
  670.              When triggered, MTC will return with errorlevel 250;
  671.  
  672.  EMA      :  The test is ALWAYS (so not only once in a period) triggered
  673.              when Expanded Memory (EMS) is available in the PC.
  674.              When triggered, MTC will return with errorlevel 250;
  675.  
  676.  EXA      :  The test is ALWAYS (so not only once in a period) triggered
  677.              when Extended Memory  is available in the PC.
  678.              When triggered, MTC will return with errorlevel 250;
  679.  
  680.  XMA      :  The test is ALWAYS (so not only once in a period) triggered
  681.              when XMS (or any XMS driver) is available in the PC.
  682.              When triggered, MTC will return with errorlevel 250;
  683.  
  684.  GDA      :  The test is ALWAYS (so not only once in a period) triggered
  685.              and returns an errorlevel depending on the graphical card
  686.              you have in your machine. The following errorlevels are
  687.              returned:
  688.              1: Hercules card present;
  689.              2: CGA      card present;
  690.              3: MCGA     card present;
  691.              4: EGA      card present;
  692.              5: VGA      card present;
  693.              6: PDA      card present;
  694.  
  695.  ┌───────┬─────────────────────────────────────────────────────────────┐
  696.  │   3   │ Examples                                                    │
  697.  └───────┴─────────────────────────────────────────────────────────────┘
  698.  
  699.  3.1 A simple example for backup
  700.  ────────────────────────────────────────────────────────────────────────
  701.  An example with MTC for backing up my disks. I want to have a full
  702.  backup on Sunday and an appended (incremental) backup on all other
  703.  days:
  704.  
  705.  @ECHO OFF
  706.  :BACKUPC
  707.  MTC TASK:1 DESC:Backup_Drive_C: D /B /Q
  708.  IF ERRORLEVEL 7 GOTO INCRBCKC
  709.  IF ERRORLEVEL 6 GOTO INCRBCKC
  710.  IF ERRORLEVEL 5 GOTO INCRBCKC
  711.  IF ERRORLEVEL 4 GOTO INCRBCKC
  712.  IF ERRORLEVEL 3 GOTO INCRBCKC
  713.  IF ERRORLEVEL 2 GOTO INCRBCKC
  714.  IF ERRORLEVEL 1 GOTO FULLBCKC
  715.  GOTO BACKUPD
  716.  :INCRBCKC
  717.  CPBACKUP C: /INC
  718.  GOTO BACKUPD
  719.  :FULLBCKC
  720.  CPBACKUP C: /FULL
  721.  GOTO BACKUPD
  722.  :BACKUPD
  723.  MTC TASK:2 DESC:Backup_Drive_D: D /B /Q
  724.  IF ERRORLEVEL 7 GOTO INCRBCKD
  725.  IF ERRORLEVEL 6 GOTO INCRBCKD
  726.  IF ERRORLEVEL 5 GOTO INCRBCKD
  727.  IF ERRORLEVEL 4 GOTO INCRBCKD
  728.  IF ERRORLEVEL 3 GOTO INCRBCKD
  729.  IF ERRORLEVEL 2 GOTO INCRBCKD
  730.  IF ERRORLEVEL 1 GOTO FULLBCKD
  731.  GOTO BACKUPE
  732.  :INCRBCKD
  733.  CPBACKUP D: /INC
  734.  GOTO BACKUPE
  735.  :FULLBCKD
  736.  CPBACKUP D: /FULL
  737.  GOTO BACKUPE
  738.  :BACKUPE
  739.  MTC TASK:3 DESC:Backup_Drive_E: D /B /Q
  740.  IF ERRORLEVEL 7 GOTO INCRBCKE
  741.  IF ERRORLEVEL 6 GOTO INCRBCKE
  742.  IF ERRORLEVEL 5 GOTO INCRBCKE
  743.  IF ERRORLEVEL 4 GOTO INCRBCKE
  744.  IF ERRORLEVEL 3 GOTO INCRBCKE
  745.  IF ERRORLEVEL 2 GOTO INCRBCKE
  746.  IF ERRORLEVEL 1 GOTO FULLBCKE
  747.  GOTO BACKUPF
  748.  :INCRBCKE
  749.  CPBACKUP E: /INC
  750.  GOTO BACKUPF
  751.  :FULLBCKE
  752.  CPBACKUP E: /FULL
  753.  GOTO BACKUPF
  754.  :BACKUPF
  755.  MTC TASK:4 DESC:Backup_Drive_F: D /B /Q
  756.  IF ERRORLEVEL 7 GOTO INCRBCKF
  757.  IF ERRORLEVEL 6 GOTO INCRBCKF
  758.  IF ERRORLEVEL 5 GOTO INCRBCKF
  759.  IF ERRORLEVEL 4 GOTO INCRBCKF
  760.  IF ERRORLEVEL 3 GOTO INCRBCKF
  761.  IF ERRORLEVEL 2 GOTO INCRBCKF
  762.  IF ERRORLEVEL 1 GOTO FULLBCKF
  763.  GOTO END
  764.  :INCRBCKF
  765.  CPBACKUP F: /INC
  766.  GOTO END
  767.  :FULLBCKF
  768.  CPBACKUP F: /FULL
  769.  GOTO END
  770.  REM ********************************************************************
  771.  REM *                     T E R M I N A T I O N                        *
  772.  REM ********************************************************************
  773.  :END
  774.  
  775.  With the above example, I have full control over the backups on any of
  776.  my drives C: to F: because for every drive I have created a specific
  777.  task (TASK:xx). You could also replace the 'D' option with a series
  778.  of MTC calls for each day of the week, like
  779.  
  780.  MTC TASK:1 DESC:bla_bla DR1 (gives 250 on Sunday   , otherwise 0);
  781.  MTC TASK:2 DESC:bla_bla DR2 (gives 250 on Monday   , otherwise 0);
  782.  MTC TASK:3 DESC:bla_bla DR3 (gives 250 on Tuesday  , otherwise 0);
  783.  MTC TASK:4 DESC:bla_bla DR4 (gives 250 on Wednesday, otherwise 0);
  784.  MTC TASK:5 DESC:bla_bla DR5 (gives 250 on Thursday , otherwise 0);
  785.  MTC TASK:6 DESC:bla_bla DR6 (gives 250 on Friday   , otherwise 0);
  786.  MTC TASK:7 DESC:bla_bla DR7 (gives 250 on Saturday , otherwise 0);
  787.  
  788.  
  789.  3.2 An example of tossing messages when received
  790.  ────────────────────────────────────────────────────────────────────────
  791.  In the next example, MTC is used to do the following:
  792.  - Check if messages are received;
  793.  - If so, toss them into the message base;
  794.  - If messages are to be tossed, check to see if enough disk-space
  795.    is available, otherwise run a cleanup task before tossing;
  796.  - Do everything very quiet, the whole place could be in bed;
  797.  
  798.  @ECHO OFF
  799.  MTC TASK:1 @ED:\MAILER\INBOUND\*.PKT
  800.  IF ERRORLEVEL 250 GOTO SPACE
  801.  GOTO END
  802.  :SPACE
  803.  MTC TASK:2 SLD500000
  804.  IF ERRORLEVEL 250 GOTO CLEAN
  805.  GOTO TOSS
  806.  :CLEAN
  807.  CLEANUP D:\MAILER\MSGBASE /ToOld
  808.  :TOSS
  809.  TOSSMSGS D:\MAILER\INBOUND D:\MAILER\MSGBASE
  810.  :END
  811.  EXIT
  812.  
  813.  
  814.  3.3 An example of a cold/warm start of a terminal program
  815.  ────────────────────────────────────────────────────────────────────────
  816.  In the next example a terminal program DISPIX is started. When the
  817.  carrier is already present, DISPIX is started without an init of the
  818.  modem, otherwise a 'cold' start is performed. Because the program uses
  819.  ANSI codes and it is possible that it is executed under DesqView, a
  820.  second test is implemented. Everything goes fast and quiet:
  821.  
  822.  @ECHO OFF
  823.  MTC TASK:5 DVL
  824.  IF ERRORLEVEL 250 GOTO DISPIX
  825.  DVANSI
  826.  :DISPIX
  827.  MTC TASK:6 CH1 DESC:Test_carrier_on_COM1
  828.  IF ERRORLEVEL 250 GOTO DISPIXW
  829.  :DISPIXC
  830.  DISPIX /COLD
  831.  GOTO END
  832.  :DISPIXW
  833.  DISPIX /WARM
  834.  :END
  835.  EXIT
  836.  
  837.  
  838.  3.4 An example of a full optimize of a 120Mb HDU
  839.  ────────────────────────────────────────────────────────────────────────
  840.  In the next example, we want to optimize the 120Mb HDU on a daily
  841.  frequency, but only unfragment files. Only once every month, we
  842.  want to do a FULL optimize and a short check on the drive.
  843.  All, except the daily, tasks require the OK from the user. As a special
  844.  bonus, every 3th and 9th month of the year is the time to do a full
  845.  test on the hard disk.
  846.  
  847.  @ECHO OFF
  848.  MTC TASK:1 /Q DESC:Full_Check MR3
  849.  IF ERRORLEVEL 250 GOTO FULLCHECK
  850.  MTC TASK:1 /Q DESC:Full_Check MR9
  851.  IF ERRORLEVEL 250 GOTO FULLCHECK
  852.  GOTO OPTCHECK
  853.  :FULLCHECK
  854.  DRIVETEST /FULL /MAX /VERYLONG C:
  855.  OPTIMIZE /FULL
  856.  GOTO END
  857.  :OPTCHECK
  858.  MTC TASK:1 /Q DESC:Full_Optimize_&_Check MN    (USE task 1, see notes)
  859.  IF ERRORLEVEL 250 GOTO DOOPTCHK
  860.  GOTO OPTIMIZE
  861.  :DOOPTCHK
  862.  DRIVETEST /SHORT /MIN /VERYSHORT
  863.  OPTIMIZE /FULL
  864.  GOTO END
  865.  :OPTIMIZE
  866.  MTC TASK:1 /Q DESC:Defragment DN
  867.  IF ERRORLEVEL 250 GOTO DEFRAGM
  868.  GOTO END
  869.  :DEFRAGM
  870.  OPTIMIZE /DEFRAG
  871.  :END
  872.  EXIT
  873.  
  874.  As you can see we use TASK 1 for different tests in this case. We can
  875.  do so because the tests will never interfere with each other. If MR3
  876.  or MR9 is executed, the batch will lead to :END after the optimize
  877.  and check. This goes all the way. If we should use different tasks
  878.  the following would happen (given the first execute in month 3).
  879.  The MR3 would be executed and the rest would be skipped BUT if you
  880.  should reboot the machine (re-execute the batch), MR3 would give
  881.  errorlevel 0 and M would become active. If this was another task
  882.  (let say TASK:2), it would return with errorlevel 3. Now there is
  883.  a GOTO END, but what is we reboot/re-execute again ? Now MR3 and M
  884.  are skipped but D (being TASK:3 for example) would become active
  885.  and return a 2 (monday). Another unfragment would start !
  886.  Using TASK:1 for all the tests will ensure us that all tests will
  887.  NOT trigger when one is triggered before the same day !!!
  888.  
  889.  ┌───────┬─────────────────────────────────────────────────────────────┐
  890.  │   4   │ Version information and credits                             │
  891.  └───────┴─────────────────────────────────────────────────────────────┘
  892.  
  893.  4.1 The BETA-team
  894.  ────────────────────────────────────────────────────────────────────────
  895.  In the header of the documentation you have found a list of support
  896.  BBS's and beta-testers (the Sysop's of the marked BBS's).
  897.  
  898.  These beta-testers are allowed to use beta-copies of this program. Also
  899.  when you, as a normal user, have questions or remarks, you could always
  900.  try to contact one of the beta-members before contacting me. In that
  901.  case the beta-tester will pass any problems to me directly.
  902.  
  903.  The beta-policy is different for each of the DISP-programs. Some of
  904.  the versions will not get a beta-test at all, some of them will be
  905.  tested at great length.
  906.  
  907.  Distribution policy is tight. The newest versions will always be
  908.  available at 2:512/100 first. From here they are distributed to the
  909.  distribution-nodes. It depends on the number of polls that such a
  910.  board does, how fast it will be available on the distribution-node.
  911.  In general this will take anywhere from 1 hour to 3 days.
  912.  
  913.  
  914.  4.2 Credits
  915.  ────────────────────────────────────────────────────────────────────────
  916.  Thanks to the following people:
  917.  
  918.  - All you who keep asking for little utilities.
  919.  
  920.  
  921.  4.3 Version history
  922.  ────────────────────────────────────────────────────────────────────────
  923.  
  924.  ┌───────┬────────────────────────────┐
  925.  │  1.01 │ Release                    │
  926.  └───────┴────────────────────────────┘
  927.   ■ First public release;
  928.  
  929.  ┌───────┬────────────────────────────┐
  930.  │  2.01 │ Release                    │
  931.  └───────┴────────────────────────────┘
  932.   ■ 1.01 was a bit of an 'easy-done' version and contained only op-
  933.     tions that I myself use frequently on my PC. This version is
  934.     extended with lots of new tests. It will go to far to add them
  935.     all to the history in detail, so I will only give a list of new
  936.     options (without their functions);
  937.  
  938.   ■ Renamed program from CDT to MTC;
  939.  
  940.   ■ Added normal date-tests D (DN), H (HN), M (MN), Q (QN) and Y (YN);
  941.  
  942.   ■ Added relative date tests DRx, HRx, MRx, QRx and YRx;
  943.  
  944.   ■ Added absolute date tests DSmmddyy, HSmmddyy, MRmmddyy, QSmmddyy
  945.     and YSmmddyy;
  946.  
  947.   ■ Added tests on carrier CHx, CLx;
  948.  
  949.   ■ Added tests on desqview DVH, DVL;
  950.  
  951.   ■ Added tests on disk SLdssss, SEdssss, SGdssss and DPd;
  952.  
  953.   ■ Added tests on files @Effff, @Cffff and @Affff;
  954.  
  955.   ■ Added tests on the PC environment (memory, display adapter);
  956.  
  957.  ┌───────┬────────────────────────────┐
  958.  │  2.05 │ Minor release              │
  959.  └───────┴────────────────────────────┘
  960.   ■ 2.01 was a bit slow. This was caused by the routines for registered
  961.     users. These routines are now changed and MTC.EXE does not need any
  962.     separate files anymore. On slow machines this can speedup things up
  963.     to 100%;
  964.  
  965.   ■ The screen for non-registered users is changed. MTC now ONLY waits
  966.     for 15 seconds. The remaining 60 seconds that could be overruled
  967.     with a 4 digit key are removed. Also the registration-screen does
  968.     not use any beep anymore;
  969.  
  970.   ■ Added an installation program to install some special defaults;
  971.  
  972.   ■ MTC.EXE can now be compressed AFTER you installed MTC.EXE with
  973.     MTCCFG.EXE;
  974.  
  975.   ■ Added 'Q' in the input-screen to return errorlevel 0 (no trigger)
  976.     and to update the semaphore-file (MTC.nnn) so the question will
  977.     not return this period;
  978.  
  979.   ■ Fixed some bugs in the documentation;
  980.  
  981.  
  982.  4.4 Copyright, Trademarks
  983.  ────────────────────────────────────────────────────────────────────────
  984.  
  985.  MTC is written in Turbo Pascal 6.0, with help of the Turbo Debugger 2.0
  986.  and makes extensive use of Object Professional 1.11.
  987.  Also included are some routines of Blaise's fine PowerTools Plus
  988.  package (5.1) and Blaise's Asynch Plus (5.0). Both STRG (6.1a) and
  989.  SYS (6.0a) are included (commercial license).
  990.  
  991.  Turbo Pascal        is a trademark  of Borland International
  992.  Turbo Debugger      is a trademark  of Borland International
  993.  Object Professional is a trademark  of TurboPower Inc.
  994.  PowerTools Plus     is a trademark  of Blaise Computing Inc.
  995.  OPCFI               is a trademark  of Robert W. van Hoeven
  996.  STRG and SYS        are  trademarks of Eagle Performance Software
  997.  DesqView            is a trademark  of Quarterdeck
  998.  
  999.  ==================== END OF DOCUMENT ==================================
  1000.